#define  _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>

//数组的创建
//int main()
//{
//	//数组
//
//	//数组创建方式: type_t arr_name [const_n]
//	//              type_t 是指数组的元素类型  const_n  是一个常量表达式，用来指定数组的大小
//
//	//int arr[10] = { 1,2,3,4,5,6,7,8,9,10 };   //如果将其换成变量的形式
//
//	const int n = 10;   //所以，如果不支持的话 ，用const也不能，因为在C语言里面const定义的是 长变量 也是一个变量
//	                    //但是在c++里面的话 const定义的是一个常量 跟C语言完全不一样 因此c++可以             
//	 
//	scanf("%d", &n);//通过n来改变数组的大小  
//	int arr[n]; //c99引入了变长数组（长度可变）的概念，允许数组的大小用变量来指定，如果编译器不支持c99中的变长数组，那就不能使用
//		//所以vs2022是不支持变长数组的
//	return 0;
//}

//数组的初始化
int main()
{
	// 数组初始化是指在创建数组的时候给数组赋一些值
	int arr[10] = { 1,2,3,4 };//指的是不完全初始化 ，指初始化了一部分，剩下的默认为0；
	char arr1[] = { 'a','b','c' };
	char arr2[] = { 'a',98,'c' };  // arr1[] arr2[] 其实是一样的 98对应的ASCII值就是98
	//对数组进行初始化的时候 []里面的值是可以不用写的 这时候初始化的大小跟你赋的值的内容来定
	char arr3[] = "abc";//这种数组的创建是有\0的，且不完全初始化的值剩余的是默认为 \0

	/*for (int i = 0; i < 3; i++)
	{
		printf("%c ", arr1[i]);
	}*/

	//当不初始化的时候打印，系统会随机赋值。但是全局变量跟静态变量的默认初始值均为0；
	//因为全局变量跟静态变量都是在内存的静态区里面创建的，这里面创建的值默认初始值为零 ，但是在栈区里面创建的值 如：局部变量和形式参数
	//如果不初始化的话则是随机值



	int	arr4[10];
	//下标           0 1 2 3 4 5 
	//写一个代码赋值1~10
	int sz = sizeof(arr) / sizeof(arr[0]);
	 int i = 0;

	//赋值
	for (i = 0; i < sz; i++)
	{
		//arr4[i] = i + 1; //打印1~10

		scanf("%d", &arr4[i]); //输入并输出

        //或者使用
       // scanf("%d", arr4+i); //输入并输出 这样就不需要&了
	}
	//打印
	for (i = 0; i < sz; i++)
	{
		printf("%d ", arr4[i]);
	}
	//printf("%d\n", arr4[4]);//[]下标引用操作符，[]有两个操作数：arr，4
	return 0;
}